正则表达式不能匹配像"\u9fa5"的十六进制

来源:百度知道 编辑:UC知道 时间:2024/05/26 12:40:35
我是用C#编写的,用FileStream StreamReader 读取一个二进制资源文件,文件打开方式为Unicode,然后用正则表达式匹配其中的汉字,代码如下:
FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
StreamReader sr = new StreamReader(fs,Encoding.Unicode);
string pattern = "[\u4e00-\u9fa5]+";
Regex re = new Regex(pattern, RegexOptions.Singleline);
Match m = re.Match(sr.ReadToEnd());
while (m.Success)
{
........
m = m.NextMatch()
}
大家看看这段代码有什么问题么?是打开文件的方式不正确么?我用"gb2312"方式也不行。
另外,我发现,在我的电脑上,用正则表达式匹配像"\uFFEF"等很大的十六进制数字时总是不能成功,是我哪里设置有问题么?
已解决,判断一下文字存储格式,Unicode或GB2312打开

家看看这段代码有什么问题么?是打开文件的方式不正确么?我用"gb2312"方式也不行。
另外,我发现,在我的电脑上,用正则表达式匹配像"\uFFEF"等很大的十六进制数字时总是不能成功,是我哪里设置有问题么

这个问题问的太专业了,呵呵~